package com.wxzz.elearing.comment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wxzz.elearing.comment.dto.SkillCommentDto;
import com.wxzz.elearing.comment.dto.SkillDto;
import com.wxzz.elearing.comment.dto.SkillPublishDto;
import com.wxzz.elearing.comment.entity.Skill;
import com.wxzz.elearing.comment.entity.SkillComment;
import com.wxzz.elearing.comment.vo.SkillPublishVo;
import com.wxzz.elearing.comment.vo.SkillVo;
import com.wxzz.elearning.common.vo.JgPageVo;
import com.wxzz.elearning.common.vo.ReturnVO;

import java.util.List;

/**
 * <p>
 * 技能 服务类
 * </p>
 *
 * @author
 * @since 2021-05-17
 */
public interface ISkillService extends IService<Skill> {

    /**
     * 新增技能
     * @param skill
     * @return
     */
    ReturnVO saveSkill(Skill skill);

    /**
     * 审核技能
     * @param id
     * @param checkStatus
     * @param isBackend 是否后端处理
     *
     * @deprecated 废弃 当前不包含审核
     *
     * @return
     */
    ReturnVO checkSkill(Long id, Integer checkStatus, Boolean isBackend);

    /**
     * 查询技能详情
     * @param id
     * @return
     */
    ReturnVO<SkillVo> selectSkillDetail(Long id, Long enterpriseId, Long userId);

    /**
     * 列出技能
     * @param skillDto
     * @return
     */
    ReturnVO<JgPageVo<List<SkillVo>>> listSkill(SkillDto skillDto, Long enterpriseId, Long userId);

    /**
     * 查询技能发布排行
     * @param skillPublishDto
     * @param enterpriseId
     * @return
     */
    ReturnVO<JgPageVo<List<SkillPublishVo>>> listSkillPublishRank(SkillPublishDto skillPublishDto, Long enterpriseId);

    /**
     * 是否删除技能
     * @param id
     * @param userId
     * @param isBackend
     * @return
     */
    ReturnVO deleteSkill(Long id, Long userId, Long enterpriseId, Boolean isBackend);

    /**
     * 新增评论
     * @param comment
     * @return
     */
    ReturnVO saveComment(SkillComment comment);

    /**
     * 根据技能ID列出评论
     * @param skillCommentDto
     * @return
     */
    ReturnVO<JgPageVo<List<SkillComment>>> listComment( SkillCommentDto skillCommentDto );

}
